package _4Game;

import java.io.Serializable;
import java.util.LinkedList;

public class Snake implements Serializable
{
	// 身體
	LinkedList<Point> body = new LinkedList<>();
	
	// 移动方向   0 上1 下  2左 3 右
	int direction = 0;
	
	// 颜色
	int color;

	
	// [(1,2),(1,3),(1,4)]  ->
	//                         (1,5)
	
	// 		  [(1,3),(1,4),(1,5)]
	void move()
	{
		// 得到蛇的头部
		Point p = body.getFirst();
		// 得到移动方向上的下一个点
		Point nextP = p.getNext(direction);
		// 放入队伍头部
		body.addFirst(nextP);
		// 移出队伍尾部
		body.removeLast();
	}


	@Override
	public String toString() 
	{
		return "Snake[" + body + ",d=" + direction + "]";
	}
	
	Snake copy()
	{
		Snake s = new Snake();
		s.body = (LinkedList<Point>)this.body.clone();
		s.color = this.color;
		s.direction = this.direction;
		return s;
	}
	
}